package com.lq.educationsystem.teacher.service;

import com.lq.educationsystem.common.util.Result;
import com.lq.educationsystem.common.util.ResultPage;
import com.lq.educationsystem.common.vo.*;
import com.lq.educationsystem.teacher.entiy.TeacherTb;

import java.util.List;

public interface TeacherBaseService {
    /**
     * 通过id查询信息
     * @param teacherId
     * @return
     */
    Result<TeacherTb> queryById(Integer teacherId);

    /**
     * 教师信息插入
     * @param teacherTb
     */
    void insertTeacherInfo(TeacherTb teacherTb);

    /**
     * 教师信息更新
     * @param teacherTb
     */
    void updateTeacherInfo(TeacherTb teacherTb);

    /**
     * 删除教师信息
     * @param teacherId
     */
    void deleteTeacherInfo(Integer teacherId);

    ResultPage<TeacherTb> queryList(TeacherPageVo teacherInfo);

    ResultPage<TeacherTb> queryBatchTeacherInfoByTeacherIdList(List<Integer> teacherIdListInfo);

    /**
     * 通过课程id查询所授班级学生的信息
     * @param classesPageInfo
     * @return
     */
    ResultPage<SubjectClassesStudentVo> querySubjectClassesStudentInfoByTeacherId(ClassesPageVo classesPageInfo);

    /**
     * 通过教师id查询教师所授课程
     * @param teacherPageVo
     * @return
     */
    ResultPage<TeacherSubjectClassesVo> queryTeacherSubjectInfoByTeacherId(TeacherPageVo teacherPageVo);

    /**
     * 考试信息发不
     * @param teacherSubjectExaminationInfo
     * @return
     */
    Result teacherReleaseSubjectExaminationInfo(TeacherSubjectExaminationVo teacherSubjectExaminationInfo);

    /**
     * 学生考试分数查询 通过班级id和 课程id   班级id查询班级内所有的的学生  学生id集合和课程id查询当前科目
     * @param classesStudentSubjectScorePageVo
     * @return
     */

    ResultPage<SubjectClassesStudentScoreVo> querySubjectClassesStudentScoreByTeacherId(ClassesStudentSubjectScorePageVo classesStudentSubjectScorePageVo);

    /**
     * 教师根据学生分数功能
     * @param subjectStudentScoreVo
     * @return
     */
    Result teacherUpdateStudentScoreBySubjectIdAndStudentId(SubjectStudentScoreVo subjectStudentScoreVo);
}
